package com.chat.Monitor;

import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.log4j.Logger;

import com.alibaba.fastjson.JSON;
import com.chat.po.Event;
import com.chat.socketServer.OnlineUserManager;

/**
 * 说明：监控线程类
 * 时间：2016年7月14日下午3:42:02
 * @author 杨建全
 */
public class Monitor implements ServletContextListener{
	Logger logger = Logger.getLogger(Monitor.class);
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		
	}

	@Override
	public void contextInitialized(ServletContextEvent contextEvent) {
		logger.trace("服务器启动完成...");
		Timer omTimer = new Timer("线程-监控",true);
		omTimer.scheduleAtFixedRate(new TimerTask() {
			@Override
			public void run() {
				showOnlineUsers();
				sendOnlineUsers();
			}
		},  0, 5*1000);
	}
	/**
	 * 功能：发送在线用户
	 * 时间：2016年7月14日下午4:11:11
	 * @author 杨建全
	 */
	protected void sendOnlineUsers() {
		Event event = OnlineUserManager.getAllOnlineUserInfo();
		OnlineUserManager.sendAll(JSON.toJSONString(event));
	}

	/**
	 * 功能：打印在线用户
	 * 时间：2016年7月14日下午3:46:48
	 * @author 杨建全
	 */
	protected void showOnlineUsers() {
		OnlineUserManager.printOnlineUsers();
	}
	
	
}
